home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d1 / atmodrom.arc / MODROM.DOC < prev    next >
Encoding:
Text File  |  1987-10-05  |  4.1 KB  |  95 lines

  1. This is the documentation file for the MODROM procedure. This procedure
  2. will modify the 8mhz AT rom dated 11/15/85 to eliminate speed problems
  3. with faster crystals or compatible clones running faster than 8mhz.
  4.  
  5. The problem occurs because IBM put a speed check in the 8mhz BIOS
  6. to prevent faster crystals from being installed. At loaction 05A3
  7. in the unmodified BIOS is the following code:
  8.  
  9.          .
  10.          .
  11.          .
  12. ; -----  VERIFY SPEED/REFRESH RATES  ( ERROR = 1 LONG AND 1 SHORT BEEP )
  13.  
  14.          XOR     BL,BL           ; CLEAR REFRESH CYCLE REPEAT COUNT
  15.          XOR     CX,CX           ; INITIALIZE SPEED RATE REGISTER
  16.          EVEN                    ; PLACE ON EVEN WORD BOUNDARY
  17. C34:
  18.          IN      AL,PORT_B       ; READ REFRESH BIT REGISTER
  19.          TEST    AL,REFRESH_BIT  ; MASK FOR BIT
  20.          LOOPZ   C34             ; DECREMENT LOOP COUNTER TILL ON
  21. C35:
  22.          IN      AL,PORT_B       ; READ REFRESH BIT REGISTER
  23.          TEST    AL,REFRESH_BIT  ; MASK FOR BIT
  24.          LOOPNZ  C35             ; DECREMENT LOOP COUNTER TILL OFF
  25.  
  26.          DEC     BL              ; DECREMENT REFRESH CYCLE REPEAT COUNT
  27.  
  28.  
  29.          JNZ     C34             ; REPEAT TILL CYCLE COUNT DONE
  30.          CMP     CX,RATE_UPPER   ; CHECK FOR RATE BELOW UPPER LIMIT
  31.          JAE     C36             ; SKIP ERROR BEEP IF BELOW MAXIMUM
  32.  
  33. C36E:
  34.          MOV     DX,0101H        ; GET BEEP COUNTS FOR REFRESH ERROR
  35.          CALL    ERR_BEEP        ; CALL TO POST ERROR BEEP ROUTINES
  36.          HLT                     ; HALT SYSTEM - BAD REFRESH RATE
  37. C36:
  38.          CMP     CX,RATE_LOWER   ; CHECK FOR RATE ABOVE LOWER LIMIT
  39.          JA      C36E            ; GO TO ERROR BEEP IF BELOW MINIMUM
  40.          .
  41.          .
  42.          .
  43. What we need to do is make the JAE  C36 an unconditional jump, JMP C36,
  44. and the JA C36E a NOP (no operation), NOP NOP.
  45. This completely eliminates speed checking from the diagnostics (POST).
  46.  
  47. Some machines get a 108 POST error. Here the bios post routines are
  48. checking the timer channel that drives the speaker. There is a short
  49. code segment as follows:
  50.  
  51.          .
  52.          .
  53.          .
  54.          OUT     TIMER+2,AL      ; WRITE TIMER 2 COUNT - MSB
  55.          JMP     $+2             ; I/O DELAY
  56.          IN      AL,TIMER+2      ; GET THE LSB
  57.          .
  58.          .
  59.          .
  60. After this code fragment is a test for AL containing the proper values.
  61. At 6 or 8mhz most machines have no problem, but, with the short delay
  62. inserted by the JMP $+2, at 10mhz the data doesn't have time to settle
  63. on the bus, so an incorrect value is read. To eliminate this bug we
  64. must change the JZ D7_D to to JMP D7_D. I've been running this way for
  65. months with no problem. If your speaker works, the timer channel is
  66. ok.
  67.  
  68. To acomplish all this we must run a series of programs included here.
  69. First we must get the AT rom to disk. ROMSAVAT.EXE will do this. When
  70. run on an IBM AT, the BIOS rom is written to disk. Next we must
  71. modify the saved BIOS image. We will use DEBUG to do it with the
  72. command file provided. Next we must calculate a new checksum and
  73. split the BIOS image into the ODD and EVEN bytes. The AT has a 16 bit
  74. bus and needs 2 27256 EPROMS (200 ns or faster reccommended), one
  75. for each byte fetched. We will use CHKSUM64.EXE to do this step.
  76. Now burn ATROM.EEE (EVEN bytes) in one EPROM and ATROM.OOO (ODD BYTES)
  77. in the other. Now replace your current ROMS with the new EPROMS and
  78. no more speeding tickets!
  79.  
  80. Remember - This works ONLY on the AT BIOS dated 11/15/85 !!!!!!!!!
  81.  
  82. To run the procedure do the following:
  83.  
  84. 1. Use ONLY an IBM AT with a BIOS dated 11/15/85
  85. 2. Copy DEBUG onto the diskette with the files provided.
  86. 3. Place the diskette in drive A:
  87. 4. Make A: the default drive
  88. 5. enter the command "MODROM"
  89. 6. Sit back and wait for a while, CHKSUM64 takes a while to run.
  90. 7. Burn your new EPROMS and put them in your machine.
  91.    if they don't work, swap them. The ODD and EVEN sockets vary from
  92.    machine to machine and the EPROMS won't work in the wrong sockets.
  93.  
  94. The IBM BIOS won't work on SOME clones. I don't know why, but they won't
  95.